%module OgrePrerequisites

%{
#include "OGRE/Ogreprerequisites.h"
	%}

// Platform-specific stuff
%import "OgrePlatform.h"
%include "std_string.i"

namespace Ogre {
	// from OgrePlatform.h
	typedef unsigned int uint32;
	typedef unsigned short uint16;
	typedef unsigned char uint8;
	typedef int int32;
	typedef short int16;
	typedef char int8;
// define uint64 type
	typedef unsigned __int64 uint64;
	typedef __int64 int64;

        typedef float Real;

	typedef unsigned char uchar;
	typedef unsigned short ushort;
	typedef unsigned int uint;
	typedef unsigned long ulong;
 };

//%import "OgreStdHeaders.h"
//%import "OgreMemoryAllocatorConfig.h"


namespace Ogre
{

	typedef std::string _StringBase;

	typedef std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> > _StringStreamBase;

	typedef _StringBase String;
	typedef _StringStreamBase StringStream;
	typedef StringStream stringstream;
	
};
